# Проект Yappy ML services

## Автор: Наумов Евгений

## Сервисы

- **service1**: CLIP-BLIP сервис, работающий на порту 5000

  Этот сервис обрабатывает видео и генерирует описания на основе модели CLIP-BLIP. Он позволяет загружать видео или указывать URL для обработки.

  **Используемые технологии и модели:**
  - CLIP (Contrastive Language-Image Pre-Training): Модель, разработанная OpenAI, которая связывает изображения и текстовые описания.
  - BLIP (Bootstrapping Language-Image Pre-training): Модель для генерации текстовых описаний к изображениям.
  - FAISS: Библиотека для эффективного поиска по большим коллекциям векторных представлений.
  - MarianMT: Модель для машинного перевода на основе трансформеров.
  - OpenCV: Библиотека для обработки изображений и видео.
  - Flask: Веб-фреймворк для создания веб-приложений.

- **service2**: Text-On-Video-To-Text сервис, работающий на порту 5001

  Этот сервис извлекает текст с видео, используя OCR (оптическое распознавание символов), и обрабатывает его для получения осмысленных текстов. Он позволяет загружать видео или указывать URL для обработки.

  **Используемые технологии и модели:**
  - Tesseract: Система OCR для распознавания текста в изображениях.
  - OpenCV: Библиотека для обработки изображений и видео.
  - Flask: Веб-фреймворк для создания веб-приложений.
  - Pytesseract: Обертка для использования Tesseract OCR в Python.
  - GPT-2: Модель генерации текста от OpenAI.
  - nltk: Библиотека для обработки естественного языка.

- **service3**: Audio-to-Text сервис, работающий на порту 5002

  Этот сервис извлекает аудио из видео и преобразует его в текст, используя сервис распознавания речи. Он позволяет загружать видео или указывать URL для обработки.

  **Используемые технологии и модели:**
  - Pydub: Библиотека для работы с аудио.
  - SpeechRecognition: Библиотека для распознавания речи.
  - MoviePy: Библиотека для обработки видео.
  - Flask: Веб-фреймворк для создания веб-приложений.

## Предварительные требования

Убедитесь, что у вас установлены следующие компоненты:
- Docker
- Docker Compose

## Установка и настройка

1. **Клонируйте репозиторий:**

    ```bash
    git clone https://gitverse.ru/sc/zhenya_raiskii/yappy.git
    cd yappy
    ```

2. **Постройте и запустите сервисы:**

    ```bash
    sudo docker-compose down
    sudo docker-compose build
    sudo docker-compose up -d
    ```

## Пример использования API

**Обработка видео по URL:**    
    ```
    curl -X POST -H "Content-Type: application/json" -d '{"video_url": "http://example.com/your_video.mp4"}' http://localhost:5000/process_video_url
    ```
**Загрузка видео файла:**  
    ```
    curl -X POST -H "Content-Type: application/json" -d '{"video_url": "http://example.com/your_video.mp4"}' http://localhost:5000/process_video_url
    ```